package com.ly.heart.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.heart.domain.KingSaleRefundDetailEntity;
import com.ly.heart.domain.dto.KingSaleOutInventoryMaterialQueryDto;
import com.ly.heart.domain.dto.KingSaleRefundDetailDto;
import com.ly.heart.domain.vo.KingSaleRefundDetailVo;
import com.ly.heart.domain.vo.MenuKingInventoryMaterialVo;

/**
 * 金蝶-销售退货单明细Service接口
 * @author wutao
 * @date 2024-07-14
 */
public interface IKingSaleRefundDetailService extends IService<KingSaleRefundDetailEntity> {
    /**
     * 查询金蝶-销售退货单明细
     * @param id 金蝶-销售退货单明细ID
     * @return 金蝶-销售退货单明细
     */
    KingSaleRefundDetailEntity selectKingSaleRefundDetailEntityById (String id);

    /**
     * 查询金蝶-销售退货单明细列表
     * @param kingSaleRefundDetailEntity 金蝶-销售退货单明细
     * @return 金蝶-销售退货单明细集合
     */
    List<KingSaleRefundDetailEntity> selectKingSaleRefundDetailEntityList (KingSaleRefundDetailEntity kingSaleRefundDetailEntity);

    /**
     * 新增金蝶-销售退货单明细
     * @param kingSaleRefundDetailEntity 金蝶-销售退货单明细
     * @return 结果
     */
    int insertKingSaleRefundDetailEntity (KingSaleRefundDetailEntity kingSaleRefundDetailEntity);

    /**
     * 修改金蝶-销售退货单明细
     * @param kingSaleRefundDetailEntity 金蝶-销售退货单明细
     * @return 结果
     */
    int updateKingSaleRefundDetailEntity (KingSaleRefundDetailEntity kingSaleRefundDetailEntity);

    /**
     * 查询销售退货与销售退货明细关联关系记录
     * @param kingSaleRefundDetailEntity
     * @return
     */
    List<KingSaleRefundDetailEntity> queryRelationList (KingSaleRefundDetailEntity kingSaleRefundDetailEntity);

    /**
     * 批量删除金蝶-销售退货单明细
     * @param ids 需要删除的金蝶-销售退货单明细ID
     * @return 结果
     */
    int deleteKingSaleRefundDetailEntityByIds (String[] ids);

    /**
     * 删除金蝶-销售退货单明细信息
     * @param id 金蝶-销售退货单明细ID
     * @return 结果
     */
    int deleteKingSaleRefundDetailEntityById (String id);

    /**
     * 获取销售退货单合计数量和含税单价
     * @param queryDto
     * @return
     */
    KingSaleRefundDetailEntity getKingSaleRefundTotalNumAndTaxPrice(KingSaleOutInventoryMaterialQueryDto queryDto);

    /**
     * 分页查询销售退货单
     * @param kingSaleRefundDetailDto
     * @return
     */
    IPage<KingSaleRefundDetailVo> selectKingSaleRefundDetailVoPage (KingSaleRefundDetailDto kingSaleRefundDetailDto);

    /**
     * 选单选择销售退货单明细
     * @param kingSaleRefundDetailDto
     * @return
     */
    IPage<KingSaleRefundDetailVo> menuSaleRefundDetailList(KingSaleRefundDetailDto kingSaleRefundDetailDto);
}
